page.tsx 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. import { PayDataType } from "@/api/promo";
  2. import DomainFooter from "@/components/DomainFooter";
  3. import { Link } from "@/i18n/routing";
  4. import { server } from "@/utils/server";
  5. import Image from "next/image";
  6. import { Download, DownNumber } from "./DownNumber";
  7. const getActivityApi = () => {
  8. return server
  9. .request<PayDataType>({
  10. url: "/v1/api/front/activity/pay",
  11. method: "post",
  12. })
  13. .then((res) => {
  14. return !Array.isArray(res.data) ? res.data.first_pay || [] : [];
  15. })
  16. .catch((e) => {
  17. return [];
  18. });
  19. };
  20. const getUserRegTypeFreeStatusApi = () => {
  21. return server
  22. .request<any>({
  23. url: "/v1/api/user/user_reg_type_free_status",
  24. method: "post",
  25. })
  26. .then((res) => {
  27. return res.data;
  28. })
  29. .catch((e) => {
  30. return {};
  31. });
  32. };
  33. const Page = async () => {
  34. const activities = await getActivityApi();
  35. const config = await getUserRegTypeFreeStatusApi();
  36. /// 如果数组不为空, 则有活动
  37. const hasEndTimeActivities = activities.length > 0;
  38. const current = activities.find((item) => item.end_time > 0)?.end_time;
  39. const endtime = current ? current * 1000 : 0;
  40. return (
  41. <>
  42. <div className={"flex flex-col [min-height:calc(100%-0.81rem)]"}>
  43. <div className={"flex-1"}>
  44. <div className={"mb-[0.2778rem] mt-[0.2083rem] flex flex-col items-center"}>
  45. <Image
  46. src={"/recharge/success.png"}
  47. alt={"success"}
  48. width={80}
  49. height={80}
  50. />
  51. <h1 className={"mt-[0.2083rem] font-bold"}>Parabéns</h1>
  52. <p className={"mt-[5px] text-[0.12rem]"}>
  53. Sua conta foi criada com sucesso.
  54. </p>
  55. </div>
  56. <div
  57. className={
  58. "relative m-[0.0694rem] rounded-[10px] bg-gradient-to-b" +
  59. " from-[#f8e4bf] to-[#f2ae38] p-[0.1389rem]"
  60. }
  61. >
  62. <div className={"absolute -top-[0.12rem] left-1/2 -translate-x-1/2"}>
  63. <Image
  64. src={"/recharge/title_bg.png"}
  65. alt={"Novo Usuário"}
  66. width={300}
  67. height={160}
  68. />
  69. <span
  70. className={
  71. "absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2" +
  72. " text-[0.125rem] font-bold text-[#ff7301]"
  73. }
  74. >
  75. Novo Usuário
  76. </span>
  77. </div>
  78. {hasEndTimeActivities && (
  79. <div
  80. className={
  81. "mt-[0.2778rem] flex rounded-[0.0347rem] bg-[#fbe6c6]" +
  82. " p-[0.0694rem]" +
  83. " items-center text-[#000]"
  84. }
  85. >
  86. <div>
  87. <Image
  88. src={"/recharge/activity-1.png"}
  89. alt={"activity-1"}
  90. width={80}
  91. height={40}
  92. />
  93. </div>
  94. <div className={"ml-[20px] w-[100%]"}>
  95. <div className={"flex items-center"}>
  96. <div className={"flex-1"}>
  97. {endtime ? <DownNumber endTime={endtime} /> : null}
  98. </div>
  99. <Link href={"/deposit"}>
  100. <div
  101. className={
  102. "bg-[url(/recharge/button-1.png)] " +
  103. " bg-[length:100%_100%] bg-no-repeat" +
  104. " h-[0.4167rem] w-[0.8333rem] pt-[0.0347rem]"
  105. }
  106. >
  107. <span
  108. className={
  109. "flex items-center text-[0.125rem]" +
  110. " font-bold" +
  111. " justify-center text-[#fff]"
  112. }
  113. >
  114. Deposito
  115. </span>
  116. </div>
  117. </Link>
  118. </div>
  119. <div>
  120. Deposite dentro de duas horas, você receberá 100 bônus em
  121. dinheiro.
  122. </div>
  123. </div>
  124. </div>
  125. )}
  126. {/* 2*/}
  127. <div
  128. className={
  129. "mt-[10px] flex rounded-[0.0347rem] bg-[#fbe6c6]" +
  130. " p-[0.0694rem]" +
  131. " items-center justify-between text-[#000]"
  132. }
  133. >
  134. <Image
  135. src={
  136. hasEndTimeActivities
  137. ? "/recharge/activity-2.png"
  138. : "/recharge/activity-1.png"
  139. }
  140. alt={"activity-1"}
  141. width={60}
  142. height={40}
  143. />
  144. <div className={"ml-[20px] flex-1"}>ADICIONAR À TELA INICIAL</div>
  145. <Download />
  146. </div>
  147. {/* 3 */}
  148. {config.status && (
  149. <div
  150. className={
  151. "mt-[10px] flex rounded-[0.0347rem] bg-[#fbe6c6]" +
  152. " p-[0.0694rem]" +
  153. " items-center text-[#000]"
  154. }
  155. >
  156. <div>
  157. <Image
  158. src={
  159. hasEndTimeActivities
  160. ? "/recharge/activity-3.png"
  161. : "/recharge/activity-2.png"
  162. }
  163. alt={"activity-3"}
  164. width={80}
  165. height={40}
  166. />
  167. </div>
  168. <div className={"ml-[20px] w-[100%]"}>
  169. <div className={"flex items-center"}>
  170. <div className={"flex-1"}>De registo prémios</div>
  171. <Link href={"/freeGames"}>
  172. <div
  173. className={
  174. "bg-[url(/recharge/button-1.png)] " +
  175. " bg-[length:100%_100%] bg-no-repeat" +
  176. " h-[0.4167rem] w-[0.8333rem] pt-[0.0347rem]"
  177. }
  178. >
  179. <span
  180. className={
  181. "flex items-center text-[0.125rem]" +
  182. " font-bold" +
  183. " justify-center text-[#fff]"
  184. }
  185. >
  186. Jogo
  187. </span>
  188. </div>
  189. </Link>
  190. </div>
  191. <div>
  192. <span className={"font-bold text-[red]"}>{config?.data?.amount ?? 0}</span> grátis para começar a jogar
  193. imediatamente
  194. </div>
  195. </div>
  196. </div>
  197. )}
  198. </div>
  199. </div>
  200. <div className={"flex w-[100%] justify-between p-[10px]"}>
  201. <Link href={"/"} className={"text-primary-color"}>
  202. <span className={"iconfont icon-xiangzuo1"}></span>
  203. Inicio
  204. </Link>
  205. <Link href={"/deposit"} className={"text-primary-color"}>
  206. Depósito
  207. <span className={"iconfont icon-xiangyou1"}></span>
  208. </Link>
  209. </div>
  210. </div>
  211. <div className={"h-[0.81rem]"}>
  212. <DomainFooter />
  213. </div>
  214. </>
  215. );
  216. };
  217. export default Page;